namespace Refract.Composition
{
    using System;

    /// <summary>
    /// Defines the interface for module logic
    /// </summary>
    public interface IModuleService
    {
        #region Methods

        void AddModule(string modulePath, Action executeWhenLoaded = null);

        void EnsureModuleIsLoaded(string moduleName, Action executeWhenLoaded);

        IModuleController GetController(string controllerName);

        #endregion Methods
    }
}